home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network Support Library
/
RoseWare - Network Support Library.iso
/
apidev
/
tpapi.exe
/
NETWARE.PA1
< prev
next >
Wrap
Text File
|
1994-01-14
|
15KB
|
335 lines
{#Z+}
{(10U&l12D(s4099T&k2S*}
{***************************************************************************}
{** Program : NETWARE **}
{***************************************************************************}
{** Version : 1.4 ** Started : 11/11/91 ** Ended : / / **}
{***************************************************************************}
{******************************** Description ******************************}
{***************************************************************************}
{** OOP library for Netware API. **}
{** **}
{** This unit forms the lowest level object : NETWARE **}
{** **}
{** **}
{***************************************************************************}
{******************************** Information ******************************}
{***************************************************************************}
{** This units provides all the interfaces to the network shells and many **}
{** misc routines. **}
{** **}
{** **}
{** **}
{** This code is (c) 1991 - 1994 Antonio Covelli. ALL RIGHTS RESERVED. **}
{** Portions (c) Novell Inc, **}
{** **}
{** **}
{***************************************************************************}
{$I NETWARE.INC}
{#Z-}
UNIT NETWARE;
INTERFACE
USES
{$IFDEF WINDOWS}
windos,
{$ELSE}
dos,
{$ENDIF}
nwdpmi,
nwvar;
TYPE
TBufferName = (Request, Receive, Internal);
PNetwareOBJ = ^NetwareOBJ;
NetwareOBJ = OBJECT
nwRequestBuffer : TDualPtr;
nwReceiveBuffer : TDualPtr;
nwDynamicAlloc : boolean;
nwReqOffset : WORD;
nwRecOffset : WORD;
CONSTRUCTOR Init (DynamicAllocation : boolean);
PROCEDURE GetWrkstnEnv (VersionString : pointer);
FUNCTION PrConnRequest (FunctionNumber : BYTE; ConnectionID : WORD) : WORD;
FUNCTION ServerRequest (ServerNumber : WORD; FunctionNumber, SubFunctionNumber : BYTE) : WORD;
function ShellRequest (FunctionNumber : byte; RequestBuffer, ReceiveBuffer : pointer) : word;
FUNCTION TableReq (FunctionNumber, SubFunctionNumber : BYTE; var TableAddr : pointer) : WORD;
function VLMTransportCall (ConnectionHandle : word; FunctionNumber : byte;
RequestBufferLength : word; RequestBuffer : pointer;
ReceiveBufferLength : word; ReceiveBuffer : pointer) : word;
function VLMCall (var DOSRegisters; DestinationID,
DestinationFunction : word) : boolean;
FUNCTION NCPRequest (ConnectionHandle : word;
FunctionNumber : BYTE; RequestBufferLength : WORD; RequestBuffer : pointer;
ReceiveBufferLength : WORD; ReceiveBuffer : pointer) : WORD;
FUNCTION ClrRelReq (FunctionNumber : BYTE; Name : pointer) : WORD;
FUNCTION PhysRecReq (FunctionNumber : BYTE; Handle : WORD; ROffSet : LONGINT; RLength : LONGINT;
Directive : BYTE; TimeOut : WORD) : WORD;
FUNCTION LockReq (FunctionNumber, Mode : BYTE; TimeOut : WORD) : WORD;
FUNCTION LPTCapReq (FunctionNumber, Device : BYTE) : WORD;
FUNCTION PrnSrvRequest (FunctionNumber : BYTE; BufferSize : WORD; ReceiveBuffer : pointer;
PrinterDevice : BYTE) : WORD;
FUNCTION PrCapRequest (FunctionNumber, SubFunctionNumber : BYTE) : WORD;
FUNCTION IPXServiceCall (var DOSRegisters) : boolean;
PROCEDURE GetConnectionIDTable;
PROCEDURE GetDriveConnectionID;
PROCEDURE GetDriveFlagTable;
PROCEDURE GetDriveHandleTable;
PROCEDURE GetFileServerNameTable;
FUNCTION ScanShellTable (FileServerAddress : TServerAddress) : WORD;
FUNCTION GetFirstFreeSlotInShell : WORD;
PROCEDURE PutFileServerInShell (ConnectionID : WORD);
FUNCTION NextOrderNumberInShell : WORD;
PROCEDURE SortShell (AddServerToShell : BOOLEAN);
PROCEDURE AddFileServerToShell (ConnectionID : WORD; AddServerToShell : BOOLEAN;
FileServerAddress : TServerAddress);
PROCEDURE RemoveFileServerFromShell (ConnectionID : WORD; ClearShell : BOOLEAN);
PROCEDURE AddToFileServerNameTable (ConnectionID : WORD; ServerName : TObjectName);
function GetEncryptionKey (var Key : TEncryptKey) : word;
function GetEncryptedKey (ObjectID : OT_BinderyID; Password : TPassword;
var Key : TEncryptKey) : word;
{********************}
{** MISC FUNCTIONS **}
{********************}
PROCEDURE InitBuffer (Buffer : TDualPtr; BufferSize : word;
BufferName : TBufferName);
PROCEDURE InitRequestBuffer;
PROCEDURE InitReceiveBuffer;
procedure ResetRegisters (var DOSRegisters : registers);
procedure ResetRegistersDPMI (var DOSRegisters : TRealModeRegisters);
function Real2Prot (InPointer : Pointer) : Pointer;
PROCEDURE AddByte (ByteValue : BYTE);
PROCEDURE AddWord (WordValue : WORD);
PROCEDURE AddWordSwap (WordValue : WORD);
PROCEDURE AddLong (LongValue : LONGINT);
PROCEDURE AddLongSwap (LongValue : LONGINT);
PROCEDURE AddArray (VAR Buffer; BufferLength : WORD);
PROCEDURE AddText (InputString : STRING; var Buffer; MaxLength : BYTE);
PROCEDURE AddPASCALString (InputString : STRING; Start : BYTE);
PROCEDURE AddPASCALToASCIIZStr (InputString : STRING; Start : BYTE);
PROCEDURE AddChar (CharValue : CHAR);
PROCEDURE AddFiller (BufferLength : WORD);
PROCEDURE AddTotal (BufferName : TBufferName; Swapped : boolean);
PROCEDURE GetByte (VAR Buffer; Location : WORD);
PROCEDURE GetWord (VAR Buffer; Location : WORD);
PROCEDURE GetWordSwap (VAR Buffer; Location : WORD);
PROCEDURE GetLong (VAR Buffer; Location : WORD);
PROCEDURE GetLongSwap (VAR Buffer; Location : WORD);
PROCEDURE GetArray (VAR Buffer; Location, BufferLength : WORD);
PROCEDURE GetASCIIZString (VAR Buffer; Location, BufferLength : WORD);
PROCEDURE GetPASCALString (VAR Buffer; Location, BufferLength : WORD);
FUNCTION GetTotal (BufferName : TBufferName) : WORD;
PROCEDURE SetTotal (BufferName : TBufferName; Total : WORD);
PROCEDURE SetStart (Start : WORD);
PROCEDURE DoWordSwap (BufferName : TBufferName; Location : WORD);
PROCEDURE DoLongSwap (BufferName : TBufferName; Location : WORD);
PROCEDURE DoMoveArray (BufferName : TBufferName; Source, Destination,
BufferLength : WORD);
FUNCTION WordSwap (InputWord : WORD) : WORD;
FUNCTION LongSwap (InputLong : LONGINT) : LONGINT;
function CheckNetwareShells : boolean;
FUNCTION CheckNetwareVersion (MinimumVersion, MinimumSubVersion, MinimumRevision,
MinimumSFT, MinimumTTS : WORD) : WORD;
FUNCTION ReturnNetwareVersion (VAR MinimumVersion, MinimumSubVersion, MinimumRevision,
MinimumSFT, MinimumTTS : WORD) : WORD;
FUNCTION IsV4Supported (ConnectionID : WORD) : WORD;
FUNCTION IsV3Supported (ConnectionID : WORD) : WORD;
FUNCTION IsV22Supported (ConnectionID : WORD) : WORD;
FUNCTION GetSearchOrderFromDriveLetter (Path : TPathName; DriveLetter : CHAR) : WORD;
FUNCTION GetFileServerAddress (ServerName : TObjectName;
VAR FileServerAddress : TServerAddress) : BOOLEAN;
function ConvertNetworkNumber (NetworkNumber : TByte4Array) : TString8;
function ConvertNodeAddress (NodeAddress : TByte6Array) : TString12;
FUNCTION UpperCaseNW (InputString : STRING) : STRING;
FUNCTION HexString (InputLong : LONGINT; Places : BYTE) : STRING;
FUNCTION PtrOfs (InPointer : POINTER; ArrayNum, ArraySize : WORD) : POINTER;
PROCEDURE SwapAsciiZ (InPPtr, InAPtr : POINTER; Len : BYTE; ToPascal : BOOLEAN);
PROCEDURE PtToAsciiZ (InPointer, Outpointer : POINTER; Len : BYTE);
FUNCTION LengthAsciiZ (VAR Buffer) : WORD;
FUNCTION AsciiZToStr (var Buffer; Max, StartPosition : WORD) : STRING;
PROCEDURE StrToAsciiZ (InputString : STRING; VAR OutputAsciiZ);
FUNCTION IntToStr (InputNumber : LONGINT) : STRING;
function StrToInt (InputString : string) : longint;
FUNCTION ConvertDirectoryHandle (ConnectionID : WORD; OldDirectoryHandle : BYTE; Path : TPathName;
VAR NewDirectoryHandle : BYTE; VAR OutPath : TPathName) : WORD;
function ConvertPathToDirectoryEntry (DirectoryHandle : byte; Path : TPathName; var VolumeNumber : byte;
var DirectoryEntry : longint) : word;
function MapDirectoryNumberToPath (VolumeNumber : byte; DirectoryEntry : longint;
NameSpace : byte; var Path : TPathName) : word;
FUNCTION GetOriginalLetter (OldDirectoryHandle : BYTE; ConnectionID : WORD;
VAR DriveLetter : CHAR) : WORD;
PROCEDURE ConvertDots (Path : TPathName; VAR OutPath : TPathName);
FUNCTION _NWMapWildPath (Path : TPathName; VAR OutPath : TPathName) : BYTE;
FUNCTION GetCurrentDrive : BYTE;
procedure SetCurrentDrive (Drive : byte);
function GetFirstNetworkDrive : byte;
procedure AllocateStandardBuffers;
procedure DeAllocateStandardBuffers;
procedure InitStandardBuffers;
DESTRUCTOR Done; VIRTUAL;
{***********************}
{** DUPLICATE ENTRIES **}
{***********************}
FUNCTION ReadPropertyValue (BinderyObjectName : TObjectName; BinderyObject : OT_BinderyType;
PropertyName : TPropertyName; SegmentNumber : WORD;
VAR PropertyValue : TPropertyValue; VAR MoreSegments,
PropertyFlags : BYTE) : WORD;
FUNCTION AllocTemporaryDirectoryHandle (DirectoryHandle : BYTE; DirectoryPath : TPathName;
DriveLetter : CHAR; VAR NewDirectoryHandle,
EffectiveRightsMask : BYTE; MapDrive : boolean) : WORD;
FUNCTION GetDriveInformation (DriveNumber : BYTE; VAR ConnectionID : WORD;
VAR DirectoryHandle : BYTE) : BYTE;
FUNCTION GetDefaultConnectionID : WORD;
FUNCTION GetPreferredConnectionID : WORD;
PROCEDURE SetPreferredConnectionID (ConnectionID : WORD);
FUNCTION DeallocateDirectoryHandle (DirectoryHandle : BYTE) : WORD;
FUNCTION GetNetwareShellVersion (VAR MajorVersion, MinorVersion,
RevisionLevel, ShellType : BYTE) : WORD;
FUNCTION GetDirectoryPath (DirectoryHandle : BYTE; VAR DirectoryPath : TPathName) : WORD;
FUNCTION GetDirectoryHandle (DriveNumber : BYTE) : BYTE;
FUNCTION IPXInitialise : WORD;
function GetConnectionNumber : longint;
FUNCTION ScanBinderyObjectTrusteePaths (ObjectID : OT_BinderyID;
VolumeNumber : BYTE;
VAR SequenceNumber : WORD;
VAR TrusteeAccessMask : BYTE;
VAR TrusteePathName : TPathName) : WORD;
{*****************}
{*** VLM CALLS ***}
{*****************}
function _CONNNameLookup (ConnectionHandle : word;
var LookupName : TObjectName) : word;
function GetDefaultConnectionHandle (var ConnectionHandle : word) : word;
function GetPrimaryConnectionHandle (var ConnectionHandle : word) : word;
function SetPrimaryConnectionHandle (ConnectionHandle : word) : word;
end;
function GetTPAPIVersion : String;